﻿using System;

namespace Gp.Scripts {
    public enum TutorialDescription {
        /// <summary>
        /// 武器伤害
        /// </summary>
        Damage,
        
        
        /// <summary>
        /// 射击压制点
        /// </summary>
        ShootSp,
        
        
        /// <summary>
        /// 射击次数
        /// </summary>
        ShootChance,
        
        
        /// <summary>
        /// 护盾护甲值
        /// </summary>
        ShieldArmor,
        
        
        
        /// <summary>
        /// 武器穿透
        /// </summary>
        BreakThrough,
        
        
        ChargeDamage,
        ChargeBreakThrough,
        
        
        /// <summary>
        /// 护甲板数量
        /// </summary>
        ArmorCount,
        
        /// <summary>
        /// 护甲倍率
        /// </summary>
        ArmorBonusRage,
    }



    public static class TutorialDescriptionExtend {
        public static string GetText(this TutorialDescription t) {
            return t switch {
                TutorialDescription.Damage => "武器对目标造成的伤害",
                TutorialDescription.ShootSp => "远程武器射击积累" + Highlight("压制点数") + "。压制点数会为远程武器能力带来增益，并且压制点数高的一方可以施展" + Highlight("冲锋") + "能力。",
                TutorialDescription.ShootChance => "远程武器的" + Highlight("射击次数") + "。当武器剩余弹药为0时，则需要" + Highlight("装填") + "才能继续攻击。",
                TutorialDescription.ShieldArmor => "装备盾牌武器后，盾牌武器会提供" + Highlight("额外的护甲值") + "。盾牌提供的护甲不会受到穿透效果影响，但仅有1块，并且当计算伤害时优先结算",
                TutorialDescription.BreakThrough => "穿透为N时，单位攻击会对同时对目标" + Highlight("额外N块") + "护甲板造成伤害。",
                TutorialDescription.ChargeDamage => "武器在处于" + Highlight("充能") + "状态下的伤害数值",
                TutorialDescription.ChargeBreakThrough => "武器在处于" + Highlight("充能") + "状态下的穿透数值",
                TutorialDescription.ArmorCount => "护甲细分的护甲板数量。在护甲中，护甲值会被均等分成几个小块，这些小块就是护甲板。通常在受到伤害时，一次伤害只会由一块护甲板承担而" + Highlight("不会溢出") + "至其他护甲板。护甲分块越多，能承受的伤害次数越多。",
                TutorialDescription.ArmorBonusRage => "每拥有1点韧性调整值，角色就能够拥有20 * N点护甲值。",
            };
        }


        public static string Highlight(this string txt) {
            return $"<b><color=lightblue>"+ txt + "</color></b>";
        }
    }
}